"""
数据转换功能演示示例

该示例展示了Table类的数据转换功能，包括apply函数应用、值映射和替换操作。
"""
from ..dataframe import Table
import numpy as np

# 数据转换演示
print("===== 数据转换功能演示 =====")

# 创建示例数据
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
    'age': [25, 30, 35, 40, 45],
    'salary': [50000, 60000, 75000, 90000, 110000],
    'department': ['HR', 'Engineering', 'Finance', 'Engineering', 'Marketing']
}
table = Table(data)
print("原始数据:\n", table.head())

# 使用apply对薪资列进行计算（增加10%）
table.add_column('salary_increased', table.get_column('salary').apply(lambda x: x * 1.1))
print("\n增加薪资列后的数据:\n", table.head())

# 使用map对部门进行分类映射
department_mapping = {
    'HR': 'Administrative',
    'Engineering': 'Technical',
    'Finance': 'Business',
    'Marketing': 'Business'
}
table.add_column('department_category', table.get_column('department').map(department_mapping))
print("\n增加部门分类后的数据:\n", table.head())

# 使用replace替换特定值
table.replace({'department': {'HR': 'Human Resources'}})
print("\n替换部门名称后的数据:\n", table.head())

# 使用apply进行多列计算
table.add_column('age_salary_ratio', table.df.apply(lambda row: row['age'] / row['salary'], axis=1))
print("\n增加年龄薪资比率后的数据:\n", table.head())